The present disclosure relates to monitoring performance of software applications.
Monitoring of software applications that execute on servers has been performed. One technique is to add, to the software application, agent code that traces transactions performed by the software application. The agent code collects transaction data such as the time that certain transactions took to execute and forwards that transaction data to a central node that analyzes the data and presents it to a user.
Another technique to monitor software applications that execute on various servers is to establish one point that can be used to capture network traffic. That captured traffic can be provided to a manager node that analyzes the traffic to determine things such as response time for performing various transactions. As one example, sometimes a single network switch can be used for “port mirroring”. With port mirroring, a copy of network traffic seen on one switch port is forwarded on another switch port to allow monitoring. With port mirroring, the forwarded data packets need not be sent over a network, since the monitoring device may be connected directed to the port of the switch.
Port mirroring can work well provided that there is one point in the network that can serve as the point to capture traffic. For example, with traditional data centers there may be a single physical switch that can serve as the point to capture all traffic to all servers in the data center. That is, a customer premise installation can be made.
However, in some situations port mirroring is not suitable. For example, in a cloud environment there typically is not a single network switch that can be used for port mirroring for all of the servers in the cloud that are to be monitored.